package com.java.yz.mysql_jdbc;

import com.mysql.jdbc.Driver;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

/*
    使用java的方式连接mysql数据库并使用
        1.注册驱动
        2.建立与数据库的连接
        3.获取操作数据库的对象
        4.执行sql
        5.处理查询的结果集
        6.释放资源
 */
public class JdbcDemo1 {
    public static void main(String[] args)throws Exception {
        //第一种获取驱动的方式

        //1.注册驱动
        /*
            java提供的工具类DriverManager给我们使用，其中有一个静态的方法registerDriver()可以实现注册驱动功能
            public static void registerDriver(Driver driver)
            注册与给定的驱动程序 DriverManager 。
         */
        DriverManager.registerDriver(new Driver());

        //2.建立与数据库的连接
        //jdk自身提供的工具类DriverManager中有一个静态方法，可以让我们调用并且获取与数据库的连接
        //static Connection getConnection(String url, String user, String password)
        //尝试建立与给定数据库URL的连接。
        /**
         *      url: 统一资源定位系统
         *          http/https: 通过网络请求去访问网络上的资源
         *          jdbc:mysql: 是驱动提供的请求头
         *          请求的地址: 指定mysql的服务器地址：192.168.147.100
         *          端口号: 3306
         *          useUnicode=true & characterEncoding=utf8
         *
         *     jdbc:mysql://192.168.147.100:3306?useUnicode=true&characterCharset=utf8
         *
         *     user: 用户名 root
         *     password: 密码 123456
         */
        //在mysql5.7之后不简易其他用户与服务器直接相连
        //不想爆红就加一个useSSL=false
        String url="jdbc:mysql://192.168.147.100:3306/student?useUnicode=true&characterCharset=utf8&useSSL=false";
        String user="root";
        String password="123456";
        Connection connection = DriverManager.getConnection(url, user, password);
        System.out.println(connection);

        //3.获取数据库操作对象（专门执行sql语句的对象）
        Statement statement = connection.createStatement();

        //4.执行SQL语句（DQL,DML…）
        String sql = "insert into users(id,name,age,address) value(1001,'杨镇',20,'安徽')";
        int i = statement.executeUpdate(sql);  //返回的是受影响的行数
        System.out.println(i);


        //6.释放资源
        connection.close();


    }
}
